package com.yupi.springbootinit.model.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yupi.springbootinit.model.entity.Order;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.Date;

/**
 * @author wzh
 */
@Data
public class OrderVos implements Serializable {
    /**
     * 订单id，自增长主键
     */
    private Integer orderId;

    /**
     * 订单编号，唯一值
     */
    private String orderNo;

    /**
     * 订单状态，0-未付款，1-已付款，2-已发货，3-已签收，4-退货申请，5-退货中，6-已退货，7-取消交易
     */
    private Integer orderStatus;

    /**
     * 书本数量
     */
    private Integer bookNum;



    /**
     * 书本id
     */
    private BookVO bookVO;


    /**
     * 书本总价值
     */
    private Double bookAllPrice;

    /**
     * 已付订单金额
     */
    private Double orderMoney;

    /**
     * 运费金额
     */
    private Double shioppingCost;

    /**
     * 发票 0-不需要，1-需要
     */
    private Integer invoice;

    /**
     * 地址编号 1-
     */
    private Integer addressId;

    /**
     * 订单支付渠道 1-微信，2-支付宝，3-建行，4-农业银行
     */
    private Integer payChannel;

    /**
     * 下单时间
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 付款时间
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 发货时间
     */
    private Date setOutTime;

    /**
     * 客户编号
     */
    private Integer userId;

    /**
     * 客户备注
     */
    private String userComment;


    /**
     * 收货人姓名
     */
    private String userName;


    /**
     * 收货人电话
     */
    private String phoneNum;



    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 对象转包装类
     *
     * @param order
     * @return
     */
    public static OrderVos objToVo(Order order) {
        if (order == null) {
            return null;
        }
        OrderVos orderVos = new OrderVos();
        BeanUtils.copyProperties(order, orderVos);
        return orderVos;
    }

}
